package com.haiyou.data.common.persister.mysql.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 字段长度限制
 * 
 * @author xingyuan
 *
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
@Inherited
@Documented
public @interface Length {
	long value();// 长度

	/************** 主要针对text，blob最大长度的常量定义 ******************/
	interface Len {

		/** tinytext,tinyblob */
		long TINY = 255L;

		/** varchar,text,blob */
		long DEFAULT = 16383L;// 65535L;如果使用varchar--字符编码utf8mb4=16383,utf8=21844,latin1=65535

		/** mediumtext,mediumblob */
		long MEDIUM = 16777215L;

		/** longtext,longblob */
		long LONG = 4294967295L;

		/** 主键或者索引的最大长度 */
		long KEY = 30L;

	}

}
